//
//  LLStatusViewModel.swift
//  LLWeibo09
//
//  Created by 林 on 16/4/1.
//  Copyright © 2016年 lin. All rights reserved.
//

import UIKit

class LLStatusViewModel: NSObject {
    
    // 单例
    static let sharedInstance: LLStatusViewModel = LLStatusViewModel()
    
    /**
    加载微博数据
    调用网络请求 API地址: http://open.weibo.com/wiki/2/statuses/home_timeline
    */
    func loadStatus(loadStatusCallback: (statuses: [LLStatus]?, error: NSError?) -> ()) {
        
        // 网络请求 API地址: http://open.weibo.com/wiki/2/statuses/home_timeline
        // url
        let urlString = "https://api.weibo.com/2/statuses/home_timeline.json"
        
        let parameters = ["access_token": LLUserAccountViewModel.shareInstance.userAccount!.access_token!]
        
        // 发送GET 请求获取数据
//        LLNetworkTool.sharedInstance.afnManager.GET(urlString, parameters: parameters, progress: nil, success: { (_, result) -> Void in
//            print("请求微博数据完成了: \(result)")
//            }) { (_, error) -> Void in
//                print("请求微博数据失败了: \(error)")
//        }
        
        LLNetworkTool.sharedInstance.requestGET(urlString, parameters: parameters) { (result, error) -> () in
            
            if error != nil {
                // 出现了错误
//                print("请求微博数据出现了错误:\(error)")
                loadStatusCallback(statuses: nil, error: error)
                return
            }
            
            // 没有出错,解析返回的数据中的 "statuses", statuses里面对应的是所有的微博数据
            // [[String: AnyObject]]: 数组,数组里面存的是字典类型的元素
            let statusesArray = result?["statuses"] as? [[String: AnyObject]]
            
            // 定义空数组来存放微博模型
            var statuses = [LLStatus]()
            
            // 遍历微博字典数组
            for dict in statusesArray! {
                // 字典转模型
                let status = LLStatus(dict: dict)
                statuses.append(status)
            }
            // 字典转模型完成了
//            print("字典转模型完成了: \(statuses)")
            loadStatusCallback(statuses: statuses, error: nil)
        }

    }
}
